import os
import sys
from sqlalchemy import create_engine
from sqlalchemy_utils import database_exists, create_database
from dotenv import load_dotenv
import alembic.config

# 添加项目路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)

# 加载环境变量
load_dotenv()

# 数据库URL
DATABASE_URL = os.getenv("DATABASE_URL", "mysql+pymysql://root:password@localhost:3306/lvyou")

def init_db():
    """初始化数据库"""
    print("正在初始化数据库...")
    
    # 创建数据库引擎
    engine = create_engine(DATABASE_URL)
    
    # 如果数据库不存在，则创建
    if not database_exists(engine.url):
        create_database(engine.url)
        print(f"创建数据库: {engine.url.database}")
    else:
        print(f"数据库已存在: {engine.url.database}")
    
    # 运行Alembic迁移
    print("正在运行数据库迁移...")
    alembic_args = [
        '--raiseerr',
        'upgrade', 'head',
    ]
    alembic.config.main(argv=alembic_args)
    
    print("数据库初始化完成！")

if __name__ == "__main__":
    init_db() 